Міністерство освіти і науки України
Національний університет "Львівська політехніка"
Кафедра "Інформаційні системи та мережі"
Лабораторна робота № 3
з предмету:
Алгоритми і Структури Даних
на тему:
Інтегровані структури даних, запису.
ЛЬВІВ-2008
Тема:
Інтегровані структури даних, запису.
Мета роботи:
Придбання і закріплення навиків в роботі із записами, в інтеграції даних, в модульному програмуванні.
Постановка завдання
Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізуюють базові операції над цими об'єктами, зокрема:
текстове введення-виведення (консольний і файловий);
присвоювання;
задання константних значень;
порівняння (не менше 2-х типів).
Підготувати файл початкових даних, що містять не менше 10 значень конкретних об'єктів.
Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по числовому параметру.
Варіанти індивідуальних завдань
Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, по яким вірогідні звернення до об'єкту. Набір характеристик може бути розширений і ускладнений по розсуду виконавця.
Варіант індивідуального завданя:
Прикладна область: Відділ кадрів,
Атрибути інформації: прізвище співробітника, ім'я, по батькові, посада, стаж роботи, оклад Перевірити, чи всі нульові елементи розміщені в лівій частині матриці (варіант №1).
Хід виконання роботи:
Для заданої прикладної області я розробив опис об'єктів цієї області, процедури, що реалізуюють базові операції над цими об'єктами, зокрема:
текстове введення-виведення (консольний і файловий);
присвоювання;
2 типи порівняння.
Підготував файл початкових даних, що містять н10 значень конкретних об'єктів.
Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по параметру зарплати.
Текст програми на мові С++:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
class Worker
{
public:
char name[20];
char surname[20];
char status[10];
int celery;
int stag;
public:
Worker(char *n=NULL, char *sn=NULL, char *s=NULL, int c=0,
int st=0)
{
if(n) strcpy(name, n); else *name='\n';
if(sn)strcpy(surname, sn);else *surname='\n';
if(s) strcpy(status, s); else *status='\n';
celery=c;
stag=st;
}
void operator()(char *n, char *sn, char s, int c, int st)
{
*name='\0';
*surname='\0';
*status='\0';
celery=c;
stag=st;
}
int read(FILE *in=NULL)
{
if(!in)in=stdin;
return fscanf(in, "%s%s%s%d%d\n",
name, surname, status, &celery, &stag)==5?1:0;
}
int write(FILE *out=NULL)
{
if(!out)out=stdout;
return fprintf(out, "%-20s%-20s%-10s%4d%2d\n",
name, surname, status, celery, stag)==5?1:0;
}
int operator<(Worker w)
{
int c;
c=strcmp(name, w.name);
if(c) return c<0?1:0;
c=strcmp(surname, w.surname);
return c<0?1:0;
}
int operator>(Worker w)
{
int c;
c=strcmp(name, w.name);
if(c) return c>0?1:0;
c=strcmp(surname, w.surname);
return c>0?1:0;
}
int operator<<(Worker w)
...